From b5489b4dd364ef7841c265d77503ac3ebe6d0532 Mon Sep 17 00:00:00 2001 From: "kaf24@scramble.cl.cam.ac.uk" Date: Thu, 19 Aug 2004 12:10:55 +0000 Subject: [PATCH] bitkeeper revision 1.1159.42.1 (412498cfQR0FW9Xp4EVER4lafeJgXQ) Fix page allocator to properly free anonymous pages to the domain zone. --- xen/common/page_alloc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index a57d43b9c3..b3b056fd68 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -422,7 +422,7 @@ void free_domheap_pages(struct pfn_info *pg, int order) drop_dom_ref = (d->xenheap_pages == 0); spin_unlock_recursive(&d->page_alloc_lock); } - else + else if ( likely(d != NULL) ) { /* NB. May recursively lock from domain_relinquish_memory(). */ spin_lock_recursive(&d->page_alloc_lock); @@ -442,6 +442,12 @@ void free_domheap_pages(struct pfn_info *pg, int order) free_heap_pages(MEMZONE_DOM, pg, order); } + else + { + /* Freeing an anonymous domain-heap page. */ + free_heap_pages(MEMZONE_DOM, pg, order); + drop_dom_ref = 0; + } if ( drop_dom_ref ) put_domain(d); -- 2.30.2